diff -rup aufs3-standalone-aufs3.14-git161015-orig/aufs3-mmap.patch aufs3-standalone-aufs3.14-git161015/aufs3-mmap.patch
--- aufs3-standalone-aufs3.14-git161015-orig/aufs3-mmap.patch	2015-10-16 23:04:25.901433910 +0300
+++ aufs3-standalone-aufs3.14-git161015/aufs3-mmap.patch	2015-10-16 23:12:53.335950141 +0300
@@ -1,10 +1,7 @@
-aufs3.14.40+ mmap patch
-
-diff --git a/fs/buffer.c b/fs/buffer.c
-index eef21c6..37f4df4 100644
---- a/fs/buffer.c
-+++ b/fs/buffer.c
-@@ -2470,7 +2470,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/fs/buffer.c chromiumos_kernel-chromeos-3.14-git161015/fs/buffer.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/fs/buffer.c	2015-10-16 23:07:21.006302208 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/fs/buffer.c	2015-10-16 23:10:05.839119570 +0300
+@@ -2448,7 +2448,7 @@ int block_page_mkwrite(struct vm_area_st
  	 * Update file times before taking page lock. We may end up failing the
  	 * fault so this update may be superfluous but who really cares...
  	 */
@@ -13,11 +10,10 @@ index eef21c6..37f4df4 100644
  
  	ret = __block_page_mkwrite(vma, vmf, get_block);
  	sb_end_pagefault(sb);
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 489ba8c..115cba0 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -1828,7 +1828,7 @@ static int proc_map_files_get_link(struct dentry *dentry, struct path *path)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/base.c chromiumos_kernel-chromeos-3.14-git161015/fs/proc/base.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/base.c	2015-10-16 23:07:22.982312006 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/fs/proc/base.c	2015-10-16 23:10:05.839119570 +0300
+@@ -1828,7 +1828,7 @@ static int proc_map_files_get_link(struc
  	down_read(&mm->mmap_sem);
  	vma = find_exact_vma(mm, vm_start, vm_end);
  	if (vma && vma->vm_file) {
@@ -26,11 +22,10 @@ index 489ba8c..115cba0 100644
  		path_get(path);
  		rc = 0;
  	}
-diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index d4a3574..1397181 100644
---- a/fs/proc/nommu.c
-+++ b/fs/proc/nommu.c
-@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/nommu.c chromiumos_kernel-chromeos-3.14-git161015/fs/proc/nommu.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/nommu.c	2015-10-16 23:07:22.974311967 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/fs/proc/nommu.c	2015-10-16 23:10:05.839119570 +0300
+@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_
  	file = region->vm_file;
  
  	if (file) {
@@ -42,11 +37,10 @@ index d4a3574..1397181 100644
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  	}
-diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index eaa7374..f422b1a 100644
---- a/fs/proc/task_mmu.c
-+++ b/fs/proc/task_mmu.c
-@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/task_mmu.c chromiumos_kernel-chromeos-3.14-git161015/fs/proc/task_mmu.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/task_mmu.c	2015-10-16 23:07:22.982312006 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/fs/proc/task_mmu.c	2015-10-16 23:10:05.839119570 +0300
+@@ -314,7 +314,10 @@ show_map_vma(struct seq_file *m, struct
  	const char *name = NULL;
  
  	if (file) {
@@ -58,7 +52,7 @@ index eaa7374..f422b1a 100644
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  		pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1434,6 +1437,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1601,6 +1604,7 @@ static int show_numa_map(struct seq_file
  	seq_printf(m, "%08lx %s", vma->vm_start, buffer);
  
  	if (file) {
@@ -66,11 +60,10 @@ index eaa7374..f422b1a 100644
  		seq_printf(m, " file=");
  		seq_path(m, &file->f_path, "\n\t= ");
  	} else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
-diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 678455d..ebd34ba 100644
---- a/fs/proc/task_nommu.c
-+++ b/fs/proc/task_nommu.c
-@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/task_nommu.c chromiumos_kernel-chromeos-3.14-git161015/fs/proc/task_nommu.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/fs/proc/task_nommu.c	2015-10-16 23:07:22.974311967 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/fs/proc/task_nommu.c	2015-10-16 23:10:05.839119570 +0300
+@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_fil
  	file = vma->vm_file;
  
  	if (file) {
@@ -82,11 +75,10 @@ index 678455d..ebd34ba 100644
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index a7b311d..c823224 100644
---- a/include/linux/mm.h
-+++ b/include/linux/mm.h
-@@ -1163,6 +1163,28 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/include/linux/mm.h chromiumos_kernel-chromeos-3.14-git161015/include/linux/mm.h
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/include/linux/mm.h	2015-10-16 23:07:41.722404933 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/include/linux/mm.h	2015-10-16 23:10:05.879119768 +0300
+@@ -1157,6 +1157,28 @@ static inline int fixup_user_fault(struc
  }
  #endif
  
@@ -115,10 +107,9 @@ index a7b311d..c823224 100644
  extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
  		void *buf, int len, int write);
-diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 2b58d19..ca020f3 100644
---- a/include/linux/mm_types.h
-+++ b/include/linux/mm_types.h
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/include/linux/mm_types.h chromiumos_kernel-chromeos-3.14-git161015/include/linux/mm_types.h
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/include/linux/mm_types.h	2015-10-16 23:07:40.050396642 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/include/linux/mm_types.h	2015-10-16 23:10:05.879119768 +0300
 @@ -231,6 +231,7 @@ struct vm_region {
  	unsigned long	vm_top;		/* region allocated to here */
  	unsigned long	vm_pgoff;	/* the offset in vm_file corresponding to vm_start */
@@ -127,7 +118,7 @@ index 2b58d19..ca020f3 100644
  
  	int		vm_usage;	/* region usage count (access under nommu_region_sem) */
  	bool		vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -299,6 +300,7 @@ struct vm_area_struct {
+@@ -304,6 +305,7 @@ struct vm_area_struct {
  	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
  					   units, *not* PAGE_CACHE_SIZE */
  	struct file * vm_file;		/* File we map to (can be NULL). */
@@ -135,11 +126,10 @@ index 2b58d19..ca020f3 100644
  	void * vm_private_data;		/* was vm_pte (shared mem) */
  
  #ifndef CONFIG_MMU
-diff --git a/kernel/fork.c b/kernel/fork.c
-index e2c6853..8fa0a96 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -414,7 +414,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/kernel/fork.c chromiumos_kernel-chromeos-3.14-git161015/kernel/fork.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/kernel/fork.c	2015-10-16 23:07:57.418482766 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/kernel/fork.c	2015-10-16 23:10:05.879119768 +0300
+@@ -437,7 +437,7 @@ static int dup_mmap(struct mm_struct *mm
  			struct inode *inode = file_inode(file);
  			struct address_space *mapping = file->f_mapping;
  
@@ -148,24 +138,10 @@ index e2c6853..8fa0a96 100644
  			if (tmp->vm_flags & VM_DENYWRITE)
  				atomic_dec(&inode->i_writecount);
  			mutex_lock(&mapping->i_mmap_mutex);
-diff --git a/mm/Makefile b/mm/Makefile
-index c561f1f..c52f298 100644
---- a/mm/Makefile
-+++ b/mm/Makefile
-@@ -17,7 +17,7 @@ obj-y			:= filemap.o mempool.o oom_kill.o fadvise.o \
- 			   util.o mmzone.o vmstat.o backing-dev.o \
- 			   mm_init.o mmu_context.o percpu.o slab_common.o \
- 			   compaction.o balloon_compaction.o vmacache.o \
--			   interval_tree.o list_lru.o $(mmu-y)
-+			   interval_tree.o list_lru.o prfile.o $(mmu-y)
- 
- obj-y += init-mm.o
- 
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 217cfd3..58502d1 100644
---- a/mm/filemap.c
-+++ b/mm/filemap.c
-@@ -1939,7 +1939,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/filemap.c chromiumos_kernel-chromeos-3.14-git161015/mm/filemap.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/filemap.c	2015-10-16 23:07:47.842435281 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/filemap.c	2015-10-16 23:10:05.883119788 +0300
+@@ -1746,7 +1746,7 @@ int filemap_page_mkwrite(struct vm_area_
  	int ret = VM_FAULT_LOCKED;
  
  	sb_start_pagefault(inode->i_sb);
@@ -174,10 +150,9 @@ index 217cfd3..58502d1 100644
  	lock_page(page);
  	if (page->mapping != inode->i_mapping) {
  		unlock_page(page);
-diff --git a/mm/fremap.c b/mm/fremap.c
-index 34feba6..5397350 100644
---- a/mm/fremap.c
-+++ b/mm/fremap.c
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/fremap.c chromiumos_kernel-chromeos-3.14-git161015/mm/fremap.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/fremap.c	2015-10-16 23:07:47.814435142 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/fremap.c	2015-10-16 23:10:05.883119788 +0300
 @@ -223,16 +223,28 @@ get_write_lock:
  		 */
  		if (mapping_cap_account_dirty(mapping)) {
@@ -209,11 +184,22 @@ index 34feba6..5397350 100644
  				err = 0;
  			}
  			goto out_freed;
-diff --git a/mm/memory.c b/mm/memory.c
-index 749e1c6..d46df34 100644
---- a/mm/memory.c
-+++ b/mm/memory.c
-@@ -2761,7 +2761,7 @@ reuse:
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/Makefile chromiumos_kernel-chromeos-3.14-git161015/mm/Makefile
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/Makefile	2015-10-16 23:07:47.718434666 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/Makefile	2015-10-16 23:10:48.891333054 +0300
+@@ -17,7 +17,7 @@ obj-y			:= filemap.o mempool.o oom_kill.
+ 			   util.o mmzone.o vmstat.o backing-dev.o \
+ 			   mm_init.o mmu_context.o percpu.o slab_common.o \
+ 			   compaction.o balloon_compaction.o \
+-			   interval_tree.o list_lru.o $(mmu-y)
++			   interval_tree.o list_lru.o prfile.o $(mmu-y)
+ 
+ obj-y += init-mm.o
+ 
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/memory.c chromiumos_kernel-chromeos-3.14-git161015/mm/memory.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/memory.c	2015-10-16 23:07:47.830435221 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/memory.c	2015-10-16 23:10:05.883119788 +0300
+@@ -2755,7 +2755,7 @@ reuse:
  			set_page_dirty_balance(dirty_page, page_mkwrite);
  			/* file_update_time outside page_lock */
  			if (vma->vm_file)
@@ -222,7 +208,7 @@ index 749e1c6..d46df34 100644
  		}
  		put_page(dirty_page);
  		if (page_mkwrite) {
-@@ -3473,7 +3473,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3467,7 +3467,7 @@ static int __do_fault(struct mm_struct *
  
  		/* file_update_time outside page_lock */
  		if (vma->vm_file && !page_mkwrite)
@@ -231,11 +217,10 @@ index 749e1c6..d46df34 100644
  	} else {
  		unlock_page(vmf.page);
  		if (anon)
-diff --git a/mm/mmap.c b/mm/mmap.c
-index d4c97ba..837741e 100644
---- a/mm/mmap.c
-+++ b/mm/mmap.c
-@@ -250,7 +250,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/mmap.c chromiumos_kernel-chromeos-3.14-git161015/mm/mmap.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/mmap.c	2015-10-16 23:07:47.738434765 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/mmap.c	2015-10-16 23:10:05.883119788 +0300
+@@ -250,7 +250,7 @@ static struct vm_area_struct *remove_vma
  	if (vma->vm_ops && vma->vm_ops->close)
  		vma->vm_ops->close(vma);
  	if (vma->vm_file)
@@ -244,7 +229,7 @@ index d4c97ba..837741e 100644
  	mpol_put(vma_policy(vma));
  	kmem_cache_free(vm_area_cachep, vma);
  	return next;
-@@ -864,7 +864,7 @@ again:			remove_next = 1 + (end > next->vm_end);
+@@ -860,7 +860,7 @@ again:			remove_next = 1 + (end > next->
  	if (remove_next) {
  		if (file) {
  			uprobe_munmap(next, next->vm_start, next->vm_end);
@@ -253,7 +238,7 @@ index d4c97ba..837741e 100644
  		}
  		if (next->anon_vma)
  			anon_vma_merge(vma, next);
-@@ -1644,8 +1644,8 @@ out:
+@@ -1648,8 +1648,8 @@ out:
  unmap_and_free_vma:
  	if (vm_flags & VM_DENYWRITE)
  		allow_write_access(file);
@@ -263,7 +248,7 @@ index d4c97ba..837741e 100644
  
  	/* Undo any partial mapping done by a device driver. */
  	unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
-@@ -2439,7 +2439,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2438,7 +2438,7 @@ static int __split_vma(struct mm_struct
  		goto out_free_mpol;
  
  	if (new->vm_file)
@@ -272,7 +257,7 @@ index d4c97ba..837741e 100644
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -2458,7 +2458,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2457,7 +2457,7 @@ static int __split_vma(struct mm_struct
  	if (new->vm_ops && new->vm_ops->close)
  		new->vm_ops->close(new);
  	if (new->vm_file)
@@ -281,7 +266,7 @@ index d4c97ba..837741e 100644
  	unlink_anon_vmas(new);
   out_free_mpol:
  	mpol_put(vma_policy(new));
-@@ -2847,7 +2847,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2847,7 +2847,7 @@ struct vm_area_struct *copy_vma(struct v
  			if (anon_vma_clone(new_vma, vma))
  				goto out_free_mempol;
  			if (new_vma->vm_file)
@@ -290,11 +275,10 @@ index d4c97ba..837741e 100644
  			if (new_vma->vm_ops && new_vma->vm_ops->open)
  				new_vma->vm_ops->open(new_vma);
  			vma_link(mm, new_vma, prev, rb_link, rb_parent);
-diff --git a/mm/nommu.c b/mm/nommu.c
-index 76b3f90..244dd6a 100644
---- a/mm/nommu.c
-+++ b/mm/nommu.c
-@@ -654,7 +654,7 @@ static void __put_nommu_region(struct vm_region *region)
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/nommu.c chromiumos_kernel-chromeos-3.14-git161015/mm/nommu.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/nommu.c	2015-10-16 23:07:47.738434765 +0300
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/nommu.c	2015-10-16 23:10:05.883119788 +0300
+@@ -653,7 +653,7 @@ static void __put_nommu_region(struct vm
  		up_write(&nommu_region_sem);
  
  		if (region->vm_file)
@@ -303,7 +287,7 @@ index 76b3f90..244dd6a 100644
  
  		/* IO memory and memory shared directly out of the pagecache
  		 * from ramfs/tmpfs mustn't be released here */
-@@ -819,7 +819,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -811,7 +811,7 @@ static void delete_vma(struct mm_struct
  	if (vma->vm_ops && vma->vm_ops->close)
  		vma->vm_ops->close(vma);
  	if (vma->vm_file)
@@ -312,7 +296,7 @@ index 76b3f90..244dd6a 100644
  	put_nommu_region(vma->vm_region);
  	kmem_cache_free(vm_area_cachep, vma);
  }
-@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file *file,
+@@ -1377,7 +1377,7 @@ unsigned long do_mmap_pgoff(struct file
  					goto error_just_free;
  				}
  			}
@@ -321,7 +305,7 @@ index 76b3f90..244dd6a 100644
  			kmem_cache_free(vm_region_jar, region);
  			region = pregion;
  			result = start;
-@@ -1461,10 +1461,10 @@ error_just_free:
+@@ -1453,10 +1453,10 @@ error_just_free:
  	up_write(&nommu_region_sem);
  error:
  	if (region->vm_file)
@@ -334,11 +318,9 @@ index 76b3f90..244dd6a 100644
  	kmem_cache_free(vm_area_cachep, vma);
  	kleave(" = %d", ret);
  	return ret;
-diff --git a/mm/prfile.c b/mm/prfile.c
-new file mode 100644
-index 0000000..532e518
---- /dev/null
-+++ b/mm/prfile.c
+diff -rupN chromiumos_kernel-chromeos-3.14-git161015-orig/mm/prfile.c chromiumos_kernel-chromeos-3.14-git161015/mm/prfile.c
+--- chromiumos_kernel-chromeos-3.14-git161015-orig/mm/prfile.c	1970-01-01 02:00:00.000000000 +0200
++++ chromiumos_kernel-chromeos-3.14-git161015/mm/prfile.c	2015-10-16 23:10:05.883119788 +0300
 @@ -0,0 +1,86 @@
 +/*
 + * Mainly for aufs which mmap(2) diffrent file and wants to print different path
